## 1.9. Apache Under Windows

In our view, Win32 currently comprises Windows 95, Windows 98, and NT.[17] As far as we know, these different versions are the same as far as Apache is concerned, except that under NT, Apache can also be run as a service. Performance under Win32 may not be as good as under Unix, but this will probably improve over coming months.

> [17]But note that neither we nor the Apache Group have done much with Windows 98 at the time of writing.

Since Win32 is considerably more consistent than the sprawling family of Unices, and since it loads extra modules as DLLs at runtime, rather than compiling them at make time, it is practical for the Apache Group to offer a precompiled binary executable as the standard distribution. Go to http://www.apache.org/dist and click on the version you want, which will be in the form of a self-installing .exe file (the .exe extension is how you tell which one is the Win32 Apache). Download it into, say, c:\temp and then run it from the Win32 Start menu's Run option.

The executable will create an Apache directory, C:\Program Files\Apache, by default. Everything to do with Win32 Apache happens in an MS-DOS window, so get into a window and type:

>     > cd c:\<apache directory>> dir

and you should see something like this:

>     Volume in drive C has no label
>      Volume Serial Number is 294C-14EE
>      Directory of C:\apache
>     .              <DIR>        21/05/98   7:27 .
>     ..             <DIR>        21/05/98   7:27 ..
>     DEISL1   ISU        12,818  29/07/98  15:12 DeIsL1.isu
>     HTDOCS         <DIR>        29/07/98  15:12 htdocs
>     MODULES        <DIR>        29/07/98  15:12 modules
>     ICONS          <DIR>        29/07/98  15:12 icons
>     LOGS           <DIR>        29/07/98  15:12 logs
>     CONF           <DIR>        29/07/98  15:12 conf
>     CGI-BIN        <DIR>        29/07/98  15:12 cgi-bin
>     ABOUT_~1            12,921  15/07/98  13:31 ABOUT_APACHE
>     ANNOUN~1             3,090  18/07/98  23:50 Announcement
>     KEYS                22,763  15/07/98  13:31 KEYS
>     LICENSE              2,907  31/03/98  13:52 LICENSE
>     APACHE   EXE         3,072  19/07/98  11:47 Apache.exe
>     APACHE~1 DLL       247,808  19/07/98  12:11 ApacheCore.dll
>     MAKEFI~1 TMP        21,025  15/07/98  18:03 Makefile.tmpl
>     README               2,109  01/04/98  13:59 README
>     README~1 TXT         2,985  30/05/98  13:57 README-NT.TXT
>     INSTALL  DLL        54,784  19/07/98  11:44 install.dll
>     _DEISREG ISR           147  29/07/98  15:12 _DEISREG.ISR
>     _ISREG32 DLL        40,960  23/04/97   1:16 _ISREG32.DLL
>             13 file(s)        427,389 bytes
>              8 dir(s)     520,835,072 bytes free

Apache.exe is the executable, and ApacheCore.dll is the meat of the thing. The important subdirectories are as follows:

conf

  Where the Config file lives.

logs

  Where the logs are kept.

htdocs

  Where you put the material your server is to give clients. The Apache manual will be found in a subdirectory.

modules

  Where the runtime loadable DLLs live.

After 1.3b6, leave your original versions of files in these subdirectories alone, while creating new ones with the added extension .default -- which you should look at. We will see what to do with all of this in the next chapter.

See the file README-NT.TXT for current problems.

### 1.9.1. Compiling Apache Under Win32

The advanced user who wants, perhaps, to write his or her own modules (see Chapter 15, "Writing Apache Modules"), will need the source code. This can be installed with the Win32 version by choosing Custom installation. It can also be downloaded from the nearest mirror Apache site (start at http://apache.org/ ) as a .tar.gz file containing the normal Unix distribution and can be unpacked into an appropriate source directory using, for instance, 32-bit WinZip, which deals with .tar and .gz format files as well as .zip. You will also need Microsoft's Visual C++ Version 5. Once the sources and compiler are in place, open an MS-DOS window and go to the Apache src directory. Build a debug version and install it into \Apache by typing:

>     > nmake /f Makefile.nt _apached
>     > nmake /f Makefile.nt installd

or build a release version by typing:

>     > nmake /f Makefile.nt _apacher
>     > nmake /f Makefile.nt installr

This will build and install the following files in and below \Apache\:

Apache.exe

  The executable

ApacheCore.dll

  The main shared library

Modules\ApacheModule*.dll

  Seven optional modules

\conf

  Empty config directory

\logs

  Empty log directory

The directives described in the rest of the book are the same for both Unix and Win32, except that Win32 Apache can load module DLLs. They need to be activated in the Config file by the `LoadModule` directive. For example, if you want status information, you need the line:

>     LoadModule status_module modules/ApacheModuleStatus.dll

Notice that wherever filenames are relevant in the Config file, the Win32 version uses forward slashes ("/") as in Unix, rather than backslashes ("\") as in MS-DOS or Windows. Since almost all the rest of the book applies to both Win32 and Unix without distinction between then, we will use ("/") in filenames wherever they occur.

Apache for Win32 can also load Internet Server Applications (ISAPI extensions).

Copyright © 2001 O'Reilly & Associates. All rights reserved.